/**
 * 箱号检查
 * @param p 
 * @returns 
 */
export function checkCntrNo(p: string): boolean {
    const cntrNo = p.trim().toUpperCase();
    let j=1, jt=0, i_p1: number, i_p2:number, s_pp: string;
    // ^[A-Za-z]{4}[0-9]{7}$  正则
    /* if (!/^[A-Za-z]{4}[0-9]{7}$/.test(cntrNo)) {
        return false;
    } */
    if (cntrNo.length === 11) {
        // 处理前10位
        for (let index = 0; index < 10; index++) {
            const element = cntrNo[index].toUpperCase();
            const eleAsc = element.charCodeAt(0);
            if (eleAsc > 64) {
                i_p1 = eleAsc - 55;
                if (i_p1 > 10) {
                    i_p1 += 1;
                }
                if (i_p1 > 21) {
                    i_p1 += 1;
                } 	
                if (i_p1 > 32) {
                    i_p1 += 1; 	
                }
            } else {
                i_p1 = Number.parseInt(element);
            }
            jt = jt + i_p1 * j;
            j = j * 2;
        }
        i_p1 = Number.parseInt(cntrNo.slice(-1));
        i_p2 = jt % 11;
        if (i_p2 == 10) {
            i_p2 = 0;
        }
    } else {
        return false;
    }
    if (i_p2 !== i_p1) {
        return false;
    } 
    return true;
}
